#define _CRT_SECURE_NO_WARNINGS 1
#include<iostream>
#include<set>
#include<vector>
#include<unordered_map>
using namespace std;
//class Solution {
//public:
//    int subarraysDivByK(vector<int>& nums, int k)
//    {
//        int sum = 0;
//        int ans = 0;
//        unordered_map<int, int> hash;
//        hash[0 % k] = 1;
//        for (auto ch : nums)
//        {
//            sum += ch;
//            int r = (sum % k + k) % k;
//            if (hash.count(r))  ans += hash[r];
//            hash[r]++;
//        }
//        return ans;
//    }
//};
class Solution {
public:
    vector<int> countBits(int n)
    {
        vector<int> ans;
        ans.push_back(0);
        for (int i = 0; i <= n; i++)
        {
            int ret = i;
            while (ret > 0)
            {
                int d = ret % 2;
                ret = ret / 2;
                ans.insert(ans.begin(), d);
            }
        }
        return ans;
    }
};
int main()
{
    Solution s;
    s.countBits(5);
}
